package com.xy.work.template.base.component;
import com.aliyun.oss.OSS;
import com.xy.work.template.base.domain.UploadResult;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author niuniu
 * @Date: 2021/5/15 09:37
 * @Description: 上传文件接口定义
 */
public interface FileService {
    /**
     * 上传图片操作,返回上传成功后的可以直接访问的连接
     * @param file 上传文件对象
     * @param rootPath 上传文件根路径
     * @param bucketName 阿里云 oss bucket 名称
     * @param endpoint 阿里云 oss endpoint 节点
     * @param accessKeyId 阿里云 oss accessKeyId
     * @param accessKeySecret 阿里云 oss accessKeySecret 秘钥
     * @return
     */
    public UploadResult uploadImg(MultipartFile file, String rootPath, String bucketName, String endpoint, String accessKeyId, String accessKeySecret);
    /**
     * 上传文件操作,返回上传成功后的短连接
     * @param file 上传文件对象
     * @param extensionConfig 允许上传文件后缀名的配置
     * @param rootPath 上传文件根路径
     * @param bucketName 阿里云 oss bucket 名称
     * @param endpoint 阿里云 oss endpoint 节点
     * @param accessKeyId 阿里云 oss accessKeyId
     * @param accessKeySecret 阿里云 oss accessKeySecret 秘钥
     * @return
     */
    public UploadResult upload(MultipartFile file, String[] extensionConfig, String rootPath, String bucketName, String endpoint, String accessKeyId, String accessKeySecret);

    /**
     * 得到阿里云oss 客户端
     * @param endpoint 阿里云oss endpoint
     * @param accessKeyId 阿里云 RAM访问ID
     * @param accessKeySecret 阿里云 RAM访问秘钥
     * @return
     */
    public OSS getOssClient(String endpoint, String accessKeyId, String accessKeySecret);
}
